package com.ruoyi.hospital.mapper.consultationInfo;

import java.util.List;

import com.ruoyi.hospital.domain.vo.OrderDetailVo;
import com.ruoyi.hospital.dto.HotDoctor;
import com.ruoyi.hospital.dto.Piedate;
import com.ruoyi.hospital.domain.consultationInfo.ConsultationInfo;
import com.ruoyi.hospital.dto.consultation.ConsultationDetail;
import com.ruoyi.hospital.dto.consultation.ConsultationParam;
import com.ruoyi.hospital.dto.consultation.ConsultationToday;

/**
 * 问诊信息Mapper接口
 * 
 * @author wendao
 * @date 2024-08-20
 */
public interface ConsultationInfoMapper 
{
    /**
     * 查询问诊信息
     * 
     * @param id 问诊信息主键
     * @return 问诊信息
     */
    public ConsultationInfo selectConsultationInfoById(Integer id);
    public ConsultationDetail selectConsultationInfoById1(Integer id);
    public OrderDetailVo selectConsultationInfoFordocincome(Integer id);
    /**
     * 查询问诊信息列表
     * 
     * @param consultationInfo 问诊信息
     * @return 问诊信息集合
     */
    public List<ConsultationInfo> selectConsultationInfoList(ConsultationInfo consultationInfo);
    public List<ConsultationInfo> selectConsultationInfoListApp(ConsultationInfo consultationInfo);
    public List<ConsultationInfo> selectConsultationInfoListAppMe(ConsultationInfo consultationInfo);
    public List<ConsultationInfo> selectConsultationInfoListLatest(ConsultationInfo consultationInfo);
    /*或者查看问诊的排队人数*/
    public int selectConsultationInfoListNum(ConsultationInfo consultationInfo);

    /*获得当天的*/
    public List<ConsultationToday> selectConsultationInfoListToday(ConsultationParam consultationParam);
    /**
     * 根据状态  memberId  docId  进行查询
    * */
    public List<ConsultationInfo> selectConsultationInfoListByState(ConsultationInfo consultationInfo);
    /**
     * 新增问诊信息
     * 
     * @param consultationInfo 问诊信息
     * @return 结果
     */
    public int insertConsultationInfo(ConsultationInfo consultationInfo);

    /**
     * 修改问诊信息
     * 
     * @param consultationInfo 问诊信息
     * @return 结果
     */
    public int updateConsultationInfo(ConsultationInfo consultationInfo);


    /**
     * 删除问诊信息
     * 
     * @param id 问诊信息主键
     * @return 结果
     */
    public int deleteConsultationInfoById(Integer id);

    /**
     * 批量删除问诊信息
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteConsultationInfoByIds(Integer[] ids);

    /**
     * 问诊费用统计
     * */
    public Double getNum();

    /*
    * 首页饼状图统计
    * */
    public List<Piedate> getPiedate();

    /*
    * 根据问诊，查询热门医生
    * */
    public List<HotDoctor> getHotdoctor();

    /**
    * 根据状态获得问诊数量
    * */
    public int getConNum(int conState,int docId);

}
